/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author cooler
 */
import java.net.*; // Para Socket, ServerSocket
import java.io.*; // Para IOException e Input/OutputStream


import arrayManipulation.*;
import comunicacao.Comunicacao;

public class NivelSup {

    public static void main(String[] args) throws IOException {
        
        if ((args.length < 1) || (args.length > 2)) {
            throw new IllegalArgumentException("Parametros(s): <Servidor> [<Porta>]");
        }

        String server = args[0];

        int servPort = (args.length == 2) ? Integer.parseInt(args[1]) : 7;

        // Cria um server socket para aceitar conexoes do cliente
        ServerSocket inSock = new ServerSocket(servPort);
        System.out.println("Servidor pronto para aceitar conexoes...");
        
        int[] array1 = Comunicacao.recebe(inSock, 125);
        
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }
        
        inSock.close();
        
        Qsort.quick_sort(array1, 0, array1.length);
        
        // Cria o socket que sera utilizado para se conectar ao servidor na porta especificada
        Socket outSock1 = new Socket(server, servPort);
        
        Comunicacao.envia(outSock1, array1);

        outSock1.close();
    }
}
